<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>StrReplace() - Syntax &amp; Usage | AutoHotkey</title>
<meta name="description" content="The StrReplace function replaces the specified substring with a new string." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>StrReplace() <span class="ver">[v1.1.21+]</span></h1>
<p>用新字符串替换指定的子字符串.</p>
<pre class="Syntax">ReplacedStr := <span class="func">StrReplace</span>(Haystack, Needle <span class="optional">, ReplaceText, OutputVarCount, Limit</span>)</pre>

<h2 id="Parameters">参数</h2>
<dl>

  <dt>Haystack</dt>
  <dd>内容被搜索和替换的字符串.</dd>

  <dt>Needle</dt>
  <dd>要搜索的字符串. 如果没有启用 <a href="StringCaseSense.htm">StringCaseSense</a>, 那么匹配过程不区分大小写.</dd>

  <dt>ReplaceText</dt>
  <dd>用来替换 <em>Needle</em> 的文本. 如果省略或为空, 那么 <em>Needle</em> 会被替换为空. 换句话说, 它会被从返回值中删除.</dd>
  
  <dt>OutputVarCount</dt>
  <dd>指定用来存储替换次数的变量(没有则为 0).</dd>
  
  <dt>Limit</dt>
  <dd>如果省略, 那么默认为 -1, 将替换 <strong>所有</strong> 在 <em>Haystack</em> 中要替换的内容. 否则, 请指定允许的最大替换数量. <em>Haystack</em> 最后一个替换对象右边的内容将保持不变.</dd>

</dl>

<h2 id="Return_Value">返回值</h2>
<p>函数返回 <em>Haystack</em> 的一个版本, 其内容已经被操作所替换. 如果不需要替换, <em>Haystack</em> 将不会被修改.</p>

<h2 id="Remarks">备注</h2>
<p>内置变量 <a href="../Variables.htm">A_Space</a> 和 <a href="../Variables.htm">A_Tab</a> 分别包含了单个空格和单个 tab 字符. 当您需要搜索单独的空格或 tab 或在 <em>Needle</em> 的开始或末尾含有空格或 tab 时, 这很有用.</p>

<h2 id="Related">相关</h2>
<p><a href="StringReplace.htm">StringReplace</a>, <a href="RegExReplace.htm">RegExReplace()</a>, <a href="InStr.htm">InStr()</a>, <a href="StringCaseSense.htm">StringCaseSense</a>, <a href="SubStr.htm">SubStr()</a>, <a href="Trim.htm">Trim()</a>, <a href="StrLen.htm">StrLen()</a>, <a href="StringLower.htm">StringLower</a>, <a href="StringLower.htm">StringUpper</a></p>

<h2 id="Examples">示例</h2>
<div class="ex" id="ExClipboard">
<p><a class="ex_number" href="#ExClipboard"></a> 移除剪贴板内容中所有的 CR+LF.</p>
<pre>Clipboard := StrReplace(Clipboard, "`r`n")</pre>
</div>

<div class="ex" id="ExVar">
<p><a class="ex_number" href="#ExVar"></a> 用加号替换所有空格.</p>
<pre>NewStr := StrReplace(OldStr, A_Space, "+")</pre>
</div>

<div class="ex" id="ExRemoveBlankLines">
<p><a class="ex_number" href="#ExRemoveBlankLines"></a> 移除变量文本中所有空行.</p>
<pre>Loop
{
    MyString := StrReplace(MyString, "`r`n`r`n", "`r`n", Count)
    if (Count = 0)  <em>; 不再需要更多的替换.</em>
        break
}</pre>
</div>

</body>
</html>